home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / languages / hpasm3.10e.lha / HPAsm3.10e / examples / AraiDemo.s next >
Text File  |  1994-10-03  |  6KB  |  427 lines

  1. ****************************************************
  2. * AraiDemo       © Vallée Christophe 1994          *
  3. * Compatible HP48S(X)/HP48G(X)                     *
  4. ****************************************************
  5.     include    entries.i
  6.  
  7. AddEcran = $131f8
  8.  
  9.     con(5)    DOCODE
  10. DebutCode    con(5)    FinCode-DebutCode
  11.  
  12.     gosbvl    SAVPTR
  13.  
  14.     lc(5)    3*28    reserve de la memoire pour les
  15.     gosbvl    MAKE$N    parametres des 3 araignees 
  16.     ad0ex
  17.     r0=a
  18.     d0=a
  19.  
  20.     a=pc
  21. Offs1    lc(5)    ARAI1-Offs1
  22.     a=a+c    a
  23.     d1=a
  24.  
  25.     lc(2)    27
  26. Copy    a=dat1    x
  27.     dat0=a    x
  28.     d1=d1+    3
  29.     d0=d0+    3
  30.     c=c-1    b
  31.     gonc    Copy
  32.  
  33.     intoff
  34.  
  35.     d1=(5)    MENUROW1
  36.     lc(2)    55
  37.     dat1=c    b
  38.  
  39.     a=pc
  40. Offs2    lc(5)    Text-Offs2
  41.     a=a+c    a
  42.     r1=a
  43.     r2=a
  44.  
  45.     c=0    a
  46.     r3=c
  47.     r4=c
  48.  
  49. Loop    d1=(5)    MENUROW1
  50. VBL    c=dat1    b
  51.     ?c#0    b
  52.     goyes    VBL    synchronisation avec l'ecran
  53.  
  54.     gosub    Scrolling
  55.  
  56.     c=0    a
  57.     gosub    Araignee
  58.  
  59.     lc(5)    28
  60.     gosub    Araignee
  61.  
  62.     lc(5)    2*28
  63.     gosub    Araignee
  64.  
  65.     lc(3)    allkeys    teste si une touche est appuyee
  66.     out=c
  67.     gosbvl    CINRTN
  68.     ?c=0    x
  69.     goyes    Loop
  70.  
  71.     inton
  72.  
  73.     gosbvl    Flush
  74.  
  75.     govlng    GETPTRLOOP
  76.  
  77. **********************
  78. * scrolling du texte *
  79. **********************
  80. Scrolling    c=r3    a    r3=tempo du scrolling
  81.     c=c-1    a    ne scrolle que si r3=0
  82.     goc    ScrollOk
  83.     r3=c    a
  84.     rtn
  85.  
  86. ScrollOk    lc(5)    1
  87.     r3=c    a
  88.  
  89.     c=r4    b    r4=tempo d'affichage de lettre
  90.     c=c-1    b    n'affiche un car que si r4=0
  91.     goc    AffCarOk
  92.     r4=c    b
  93.     goto    Scroll
  94.  
  95. AffCarOk    lc(2)    7
  96.     r4=c    b
  97.  
  98.     lc(5)    Font-Offs-48*16
  99.     a=pc
  100. Offs    a=a+c    a
  101.     b=a    a
  102.  
  103.     c=r1    a
  104.     d0=c
  105.     a=0    a
  106.     a=dat0    b
  107.     ?a#0    b
  108.     goyes    CarOk
  109.     c=r2    a
  110.     d0=c
  111.     a=dat0    b
  112. CarOk    cd0ex
  113.     c=c+2    a
  114.     r1=c    a
  115.  
  116.     c=b    a
  117.     asl    a
  118.     c=c+a    a
  119.     d0=c
  120.  
  121.     d1=(5)    AddEcran
  122.     a=dat1    a
  123.     d1=a
  124.     a=dat1    a
  125.     lc(5)    5*34+32
  126.     a=a+c    a
  127.     d1=a
  128.  
  129.     lc(2)    7
  130. AffCar    a=dat0    b
  131.     dat1=a    b
  132.     d0=d0+    2
  133.     d1=d1+    16
  134.     d1=d1+    16
  135.     d1=d1+    2
  136.     c=c-1    b
  137.     gonc    AffCar
  138.  
  139. Scroll    d1=(5)    AddEcran
  140.     a=dat1    a
  141.     d1=a
  142.     a=dat1    a
  143.     lc(5)    5*34
  144.     a=a+c    a
  145.     d0=a
  146.     d1=a
  147.  
  148.     lc(1)    8
  149.     csrc
  150.     b=c    s
  151.  
  152.     lc(2)    7
  153.     b=c    b
  154. Scroll2    a=dat0    w
  155.     d0=d0+    16
  156.  
  157.     asrb
  158.  
  159.     c=dat0    w
  160.     d0=d0+    16
  161.  
  162.     sb=0
  163.     csrb
  164.     ?sb=0
  165.     goyes    PasRet1
  166.  
  167.     a=a!b    s
  168.  
  169. PasRet1    dat1=a    w
  170.     d1=d1+    16
  171.  
  172.     a=dat0    b
  173.     d0=d0+    2
  174.  
  175.     sb=0
  176.     asrb    b
  177.     ?sb=0
  178.     goyes    PasRet2
  179.     c=c!b    s
  180.  
  181. PasRet2    dat1=c    w
  182.     d1=d1+    16
  183.  
  184.     dat1=a    b
  185.     d1=d1+    2
  186.  
  187.     b=b-1    b
  188.     gonc    Scroll2
  189.  
  190.     rtn
  191.  
  192. **************************
  193. **************************
  194. **************************
  195. * c=pointeur sur les parametre de l'araignee
  196. Araignee    a=r0
  197.     c=c+a    a
  198.     d0=c
  199.     d1=c
  200.  
  201.     st=0    0    flag mis a 1 si besoin de dessiner
  202. *            l'araignee
  203.     A=DAT0    A
  204.     D0=D0+    5
  205.  
  206.     C=DAT0    B
  207.     D0=D0+    2
  208.  
  209.     C=C-1    B
  210.     GONC    DOA1
  211.  
  212.     ST=1    0
  213.  
  214.     C=DAT0    B
  215.     A=A+1    A
  216.     ABIT=0    2
  217.  
  218. DOA1    D0=D0+    2
  219.  
  220.     DAT1=A    A
  221.     D1=D1+    5
  222.  
  223.     DAT1=C    B
  224.     D1=D1+    4
  225.  
  226.     C=A    A
  227.     D=C    A
  228. **********************
  229.     A=DAT0    A
  230.     D0=D0+    5    ;h
  231.  
  232.     C=DAT0    A    ;dh
  233.     B=C    A
  234.     D0=D0+    5    
  235.  
  236.     C=DAT0    B
  237.     D0=D0+    2    ;tempo
  238.  
  239.     C=C-1    B
  240.     GONC    DOA2
  241.  
  242.     ST=1    0
  243.  
  244.     A=A+B    A
  245.  
  246.     LC(5)    15
  247.     ?A=C    A
  248.     GOYES    CHG
  249.     
  250.     LC(5)    40
  251.     ?A#C    A
  252.     GOYES    NOCHG
  253.  
  254. CHG    B=-B    A
  255. NOCHG    C=DAT0    B
  256.  
  257. DOA2    D0=D0+    2
  258.  
  259.     DAT1=A    A
  260.     D1=D1+    5
  261.  
  262.     BCex    A
  263.     DAT1=C    A
  264.     D1=D1+    5
  265.  
  266.     BCex    A
  267.     DAT1=C    B
  268.  
  269.     B=A    A
  270.  
  271.     ?ST=0    0
  272.     RTNYES
  273.  
  274.     d1=(5)    AddEcran
  275.     a=dat1    a
  276.     d1=a
  277.     a=dat1    a
  278.     c=dat0    a
  279.     A=A+C    A
  280.     B=B+B    A
  281.     A=A+B    A
  282.     BSL    A
  283.     A=A+B    A
  284.     D1=A
  285.  
  286.     DSL    A
  287.     D=D+D    A
  288.     D=D+D    A
  289.     D=D+D    A
  290.  
  291.     a=pc
  292. O4    lc(5)    ARAI-O4
  293.     c=c+a    a
  294.     c=c+d    a
  295.     d0=c
  296.  
  297.     lc(2)    15
  298. AffAr1    a=dat0    8
  299.     dat1=a    8
  300.     d0=d0+    8
  301.     d1=d1+    16
  302.     d1=d1+    16
  303.     d1=d1+    2
  304.     c=c-1    b
  305.     gonc    AffAr1
  306.  
  307.     rtn
  308.  
  309. ARAI1    con(5)    0    dessin
  310.     con(2)    0    tempo dessin
  311.     con(2)    7    tempo dessin 0
  312.     con(5)    16    H
  313.     con(5)    -1    DH
  314.     con(2)    0    tempoH
  315.     con(2)    3    tempoH0
  316.     con(5)    3    deca
  317.  
  318. ARAI2    con(5)    0    dessin
  319.     con(2)    0    tempo dessin
  320.     con(2)    5    tempo dessin 0
  321.     con(5)    16    H
  322.     con(5)    -1    DH
  323.     con(2)    0    tempoH
  324.     con(2)    1    tempoH0
  325.     con(5)    11    deca
  326.  
  327. ARAI3    con(5)    0    dessin
  328.     con(2)    0    tempo dessin
  329.     con(2)    8    tempo dessin 0
  330.     con(5)    16    H
  331.     con(5)    -1    DH
  332.     con(2)    0    tempoH
  333.     con(2)    2    tempoH0
  334.     con(5)    22    deca
  335.  
  336. ARAI    hex    $00080000
  337.     HEX    $0048010000A88200
  338.     HEX    $002D5200087F7F00
  339.     HEX    $04EFF31002BFF620
  340.     HEX    $09C8894088CAA980
  341.     HEX    $64A8821314AFF214
  342.     HEX    $02A882200191C440
  343.     HEX    $0801480004000010
  344.     HEX    $00000000
  345.  
  346.     HEX    $00080000
  347.     HEX    $00488E0000A8CA00
  348.     HEX    $002D5B10087FF110
  349.     HEX    $04EFF51002BFF530
  350.     HEX    $09C8892088CAAB60
  351.     HEX    $64A88A4014AFF2D0
  352.     HEX    $02A882210191C202
  353.     HEX    $0801440004000800
  354.     HEX    $00000000
  355.  
  356.     HEX    $00080000
  357.     HEX    $08B8810008A94600
  358.     HEX    $0C6D5F0004CF7B10
  359.     HEX    $04DFF31006DFF630
  360.     HEX    $0AC885200BEAA560
  361.     HEX    $09A88A4085277AC0
  362.     HEX    $4221429020236221
  363.     HEX    $0012220208000400
  364.     HEX    $00000000
  365.  
  366.     HEX    $00080000
  367.     HEX    $08B8010008A98200
  368.     HEX    $0C6D520004CF7F00
  369.     HEX    $04DFF31006DFF620
  370.     HEX    $0AC889400BEAA980
  371.     HEX    $09A8821385AFF210
  372.     HEX    $42A8822000A1C440
  373.     HEX    $0011480008000010
  374.     HEX    $00000000
  375.  
  376. Font    HEX    $07CC68286CEFE7C3    0
  377.     HEX    $81C1818080C1C1C1    1
  378.     HEX    $C76E2E87C1E0E7EF    2
  379.     HEX    $C3870E8F0E07C7E3    3
  380.     HEX    $0E0FCFE6E70F0303    4
  381.     HEX    $07C7E0C70E0ECEC7    5
  382.     HEX    $81C0E1666CCEC783    6
  383.     HEX    $8F0C0E0381C1C0E0    7
  384.     HEX    $87CCED666CCEC783    8
  385.     HEX    $83C7E66CCC0F0603    9
  386.     HEX    $0001830100018301    :    :
  387.     HEX    $0000000000018301    .    ;
  388.     HEX    $0000000000000000        <
  389.     HEX    $0183810000000000    '    =
  390.     HEX    $0000000783000000    -    >
  391.     HEX    $0383838181004040    !    ?
  392.     HEX    $07CDE86E6D66E0C3    @    @
  393.  
  394.     HEX    $0789C8CFEC6C6C60    A
  395.     HEX    $03C464E3666CCF87    B
  396.     HEX    $8142202060E6E7C3    C
  397.     HEX    $C3466C686CEEE7C3
  398.     HEX    $C3E170F170E0E3C7
  399.     HEX    $C7C060E3E0E0E0C0
  400.     HEX    $8142202067E6E7C3
  401.     HEX    $848CCFC44466EEEE
  402.     HEX    $C1C1818080C1C1C1
  403.     HEX    $0F0404060683E3E1
  404.     HEX    $808482C1C3C7CECC
  405.     HEX    $404040406066EFEF
  406.     HEX    $44CECFC54566EEEE
  407.     HEX    $48C8C94B4FCEEEEC
  408.     HEX    $07CC68286CEFE7C3
  409.     HEX    $C3466C6FE7E16040
  410.     HEX    $07CC682A6EEDE7CB
  411.     HEX    $83C444E3E1636666
  412.     HEX    $03C7E4C30E0CCEC7
  413.     HEX    $CF03018181C1C0C0
  414.     HEX    $484828286CEFE7C7
  415.     HEX    $2828686C6CCEC787
  416.     HEX    $4848282565E7E6E2
  417.     HEX    $48C48783C3E66E6E
  418.     HEX    $4848C4870783E3E1    Y
  419.     HEX    $0F080C03C1E0EFEF    Z
  420.  
  421. Text    asc    '<<<ARAIDEMO<<<'
  422.     asc    '<<DEMO<EXEMPLE<DU<PROGRAMME<HPASM<'
  423.     asc    'SUR<AMIGA<<<<<<'
  424.     asc    'CONTACT<SUR<MINITEL<:<RTEL<EN<BAL<OSCAR<'
  425.     asc    'OU<SUR<INTERNET<:<VALLEE@ENSEA;FR<<<<<<<'
  426.     hex    $00
  427. FinCode